Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

datagrid datasource

Îåêßíçóå áðü ôï ìÝëïò evagelos. Τελευταία δημοσίευση από το μέλος Libra Storm στις 31-05-2013, 15:08. Υπάρχουν 6 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  25-02-2013, 16:33 72200

    datagrid datasource

    Γεια σας παιδια,

    έχω μια φορμα που ανοίγω δυναμικά tabs.

    Σε αυτά τα tabs βαζω datagrid που θέλω να έχουν τιμές απο datatable.

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
                for (i = 0; i < dt1.Rows.Count; i++)
                {
                    TabPage tbg = new TabPage(dt1.RowsIdea["descr"].ToString());
                    //tbg.Enter += new EventHandler(tbg_Enter);
                    DataGridView gv = new DataGridView();
                    gv.Name = dt1.RowsIdea["descr"].ToString();
                    gv.Dock = DockStyle.Fill;
                    tabControl1.Controls.Add(tbg);
                    gv.Name = dt1.RowsIdea["descr"].ToString();
                    gv.AllowUserToAddRows = false;
                    DataTable tmpDT = dt2.Select("catid1 = " + dt1.RowsIdea["catid1"].ToString()).CopyToDataTable();                
                    //gv.DataSource = dt2.Select("catid1 = " + dt1.RowsIdea["catid1"].ToString()).CopyToDataTable();
                                    
                    int tmp2 = tmpDT.Rows.Count;
                    gv.DataSource = tmpDT;
                    int tmpGV = gv.Rows.Count;
                    
    
                    tbg.Controls.Add(gv);

     

    το πρόβλημά μου είναι ότι ενώ το tmpDT (Γραμμή 11) ΠΑΝΤΑ έχει τιμές, το tmpGV (γραμμή 15) πάντα πέρνει την τιμή 0.

    Με απότέλεσμα όταν πάω να αλλάξω επικεφαλίδα στο grid column να μου πετάει μήνυμα λάθους.

    gv.Columns["code"].HeaderText = "Κωδικός";
  •  25-02-2013, 23:30 72202 σε απάντηση της 72200

    Απ: datagrid datasource

    Καλησπέρα,

    Μερικά pointers για σένα:

    • Για να μπορέσει να γεμίσει το GridView από το Data Table και να πάρει σωστά τα ονόματα των columns, θα πρέπει να τα περάσεις στα Captions των columns τα ονόματα που θέλεις (dt.Columns["ColumnName"].Caption = "Column Title"). Δεν χρειάζεται να φτιάχνεις εσύ στις στήλες και να τις γεμίζεις στην συνέχεια
    • Έχω την εντύπωση, επειδή βάζεις στήλες από την αρχή στο DataGridView, δεν μπορεί να τις ταιριάξει με τις στήλες του DataTable και για αυτό δεν σου βάζει δεδομένα.

       

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  26-02-2013, 09:35 72205 σε απάντηση της 72202

    Απ: datagrid datasource

    τα πέρασα τα captions

    dt2.Columns["code"].Caption = "Κωδικός";

     

    αλλα πάλι τίποτα.

    και επίσης στο grid δεν αλλάζει το headertext.

     

  •  27-02-2013, 23:14 72215 σε απάντηση της 72205

    Απ: datagrid datasource

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Shown(object sender, EventArgs e)
            {
                int i;
                DataTable dt1 = new DataTable();
                DataTable dt2 = new DataTable();
                DataRow r;
    
                dt1.Columns.Add("descr");
                dt1.Columns.Add("catid1", typeof(int));
    
                dt2.Columns.Add("catid1", typeof(int));
                
                for (i = 0; i < 5; i++)
                {
                    r = dt1.NewRow();
    
                    r["descr"] = "descr" + i;
                    r["catid1"] = i + 1;
    
                    dt1.Rows.Add(r);
    
                    r = dt2.NewRow();
    
                    r["catid1"] = i + 1;
    
                    dt2.Rows.Add(r);
                }
    
                for (i = 0; i < dt1.Rows.Count; i++)
                {
                    TabPage tbg = new TabPage(dt1.RowsIdea["descr"].ToString());
                    //tbg.Enter += new EventHandler(tbg_Enter);
                    DataGridView gv = new DataGridView();
    
                    gv.Name = dt1.RowsIdea["descr"].ToString();
    
                    gv.Dock = DockStyle.Fill;
    
                    tabControl1.Controls.Add(tbg);
    
                    gv.Name = dt1.RowsIdea["descr"].ToString();
    
                    gv.AllowUserToAddRows = false;
    
                    DataTable tmpDT = dt2.Select("catid1 = " + dt1.RowsIdea["catid1"].ToString()).CopyToDataTable();
                    //gv.DataSource = dt2.Select("catid1 = " + dt1.RowsIdea["catid1"].ToString()).CopyToDataTable();
    
                    tbg.Controls.Add(gv); // πρώτα το βάζουμε
    
                    int tmp2 = tmpDT.Rows.Count;
                    gv.DataSource = tmpDT; // και μετά το κάνουμε populate
                    int tmpGV = gv.Rows.Count;
    
                    gv.Columns["catid1"].HeaderText = "Column " + i;
                }
            }
        }
    }
  •  04-03-2013, 12:26 72243 σε απάντηση της 72215

    Απ: datagrid datasource

    οκ ολα μια χαρα

     

  •  31-05-2013, 13:48 72721 σε απάντηση της 72243

    Απ: datagrid datasource

    αλλη μια ερώτηση πανω στο ιδιο θεμα.

    ενα column με ονομα markcolor εχει διαφορες τιμες. (1,2,3 κλπ)
    καθε μια τιμη αντιστοιχει και σε ενα χρώμα
    1=κοκκινο
    2=μπλε
    3=κιτρινο

    οταν γεμιζει το gridview υπαρχει περιπτωση να αλλαζω και το χρωμα του row με την αναλογη τιμη;

  •  31-05-2013, 15:08 72724 σε απάντηση της 72721

    Απ: datagrid datasource

    CellFormating event ή OnFellFormating method αν το έχεις κληρονομήσει.

     

    http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellformatting.aspx 

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems